package com.sophossystems.client.asmon.dao;

import com.sophossystems.client.asmon.dao.FacturaDao;
import com.sophossystems.client.asmon.dto.FacturaDTO;
import com.sophossystems.client.asmon.dto.FacturaPkDTO;
import com.sophossystems.client.asmon.exceptions.DaoException;
import java.util.List;

public interface FacturaDao
{
	/**
	 * Method 'insert'
	 * 
	 * @param dto
	 * @return FacturaPk
	 */
	public FacturaPkDTO insert(FacturaDTO dto);
	

	/** 
	 * Updates a single row in the FACTURA table.
	 */
	public void update(final FacturaDTO dto) throws DaoException;

	/** 
	 * Deletes a single row in the FACTURA table.
	 */
	public void delete(FacturaPkDTO pk) throws DaoException;

	/** 
	 * Returns all rows from the FACTURA table that match the criteria 'numero = :numero'.
	 */
	public FacturaDTO findByPrimaryKey(final int numero) throws DaoException;

	/** 
	 * Returns all rows from the FACTURA table that match the criteria ''.
	 */
	public List<FacturaDTO> findAll() throws DaoException;

	/** 
	 * Returns all rows from the FACTURA table that match the criteria 'numero = :numero'.
	 */
	public List<FacturaDTO> findWhereNumeroEquals(int numero) throws DaoException;

	/** 
	 * Returns all rows from the FACTURA table that match the criteria 'idCliente = :idCliente'.
	 */
	public List<FacturaDTO> findWhereIdClienteEquals(int idCliente) throws DaoException;

	/** 
	 * Returns all rows from the FACTURA table that match the criteria 'concepto = :concepto'.
	 
	public List<FacturaDTO> findWhereConceptoEquals(String concepto) throws DaoException; */

	/** 
	 * Returns all rows from the FACTURA table that match the criteria 'monto = :monto'.
	 
	public List<FacturaDTO> findWhereMontoEquals(String monto) throws DaoException; */

	/** 
	 * Returns all rows from the FACTURA table that match the criteria 'fecha = :fecha'.
	 
	public List<FacturaDTO> findWhereFechaEquals(Date fecha) throws DaoException; */

	/** 
	 * Returns the rows from the FACTURA table that matches the specified primary-key value.
	 
	public FacturaDTO findByPrimaryKey(FacturaPkDTO pk) throws DaoException; */
	
	public FacturaPkDTO findLastInsert() throws DaoException;

}
